package com.gtq.uhome.mapper;

import com.gtq.uhome.vo.MarkiVo;

import com.gtq.uhome.vo.DeliveryOrderManagementVo;
import com.gtq.uhome.vo.MarkiVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MarkiMapper {

    //通过手机号码查询staff表对应人的id
    Integer selectIdByStaffPhoneNumberInStaff(String staffPhoneNumber);

    //配送员信息，查询所有
    List<MarkiVo> findAll();

    //配送员信息，模糊查询
    List<MarkiVo> findLike(MarkiVo markiVo);

    //添加配送员信息,staff表
    Integer insertMarkiInStaff(MarkiVo markiVo);
    //添加配送员信息，vehicle表
    Integer insertMarkiInVehicle(MarkiVo markiVo);
    //添加配送员，staff_role表
    Integer insertMarkiInStaffRole(MarkiVo markiVo);

    //删除配送员信息
    Integer deleteMarki(Integer staffId);

    //修改状态，冻结
    Integer freeze(Integer staffId);
    Integer notFreeze(Integer staffId);

    //编辑配送员信息,staff表
    Integer updateMarkiInStaff(MarkiVo markiVo);
    //编辑配送员信息，vehicle表
    Integer updateMarkiInVehicle(MarkiVo markiVo);

    /**
     * 派送列表 --> 快递员当前订单数量查询
     * 查询派送员当前接单数量查询
     */
    Integer queryOrderQuantity(Integer id);

    /**
     *查询未派单
     */
    List<DeliveryOrderManagementVo> selectUndelivered();

    /**
     * 通过订单号
     *查询未派单
     */
    List<DeliveryOrderManagementVo> selectUndeliveredByOrderId(String oderId);

    /**
     * 未配送的订单查询
     * 要模糊查询的字段
     * @return 返回模糊查询结果
     */
    List<DeliveryOrderManagementVo> vagueSelectUndelivered(@Param("vagueName") String vagueName);

    /**
     * 配送员模糊查询
     * @param vagueFind 要查询的变量
     * @return 返回结果
     */
    List<MarkiVo> vagueFand(@Param("vagueFind")String vagueFind);

    /**
     * 通过配送员ID查询配送员信息
     * @param staffId 配送员ID
     * @return 员工信息
     */
    MarkiVo findByStaffId(Integer staffId);


}
